
#ifndef BUGTRACKAPP
#define BUGTRACKAPP

#include "globals.h"
#include "MultiCamControl.h"
#include "BugTracker.h"

class BugTrackApp
{
private:
	int screenH;
	int screenW;
	void SetWH(int h, int w) { screenH = h; screenW = w; }
	MultiCamControl cams;
	BugTracker tracker;
	int numWindows;
	int currentWindowID;
	unsigned int steps;
	bool bDrawRealNext;// true: draw the texture/colored real version, false: draw 'binary' generative model
	bool bRenderedSynthOnce; // if we've drawn the synthetic one once (don't read back until this happens)
	bool bRenderedRealOnce; // if we've drawn the real one once (don't read it back until it has)
	float dt;
	fstream* true_params_file;
	fstream* trck_params_file;
	bool tracking;

public:
	BugTrackApp(int w, int h, int numWin);
	void Tracking( bool bTracking ) { tracking = bTracking; }
	~BugTrackApp();

	void Init();
	void Reset();
	
	void KeyboardCallback(unsigned char key, int x, int y);
	void MouseCallback(int button, int state, int x, int y);
	void IdleCallback();
	void DisplayCallback();
	void ResizeCallback(int w, int h);


};


#endif